Patches for an English translation of Otogirisou for Super Famicom. All my
source code, tools, reverse engineering notes, the translated script, etc. are
available in this Git repo: https://github.com/ButThouMust/otogirisou-tools

Please let me know if you would like to contribute to the project, or would like
to use it as a basis for translating the game to another language!

Please do not reupload patch files to other sites without my permission.

This is a translation project independent of the one by Tom (RetroTranslator)
and DDS, for which they released a patch on March 6, 2024.
- This is not to dismiss the quality of their project, but please do not send me
  suggestions for my project based on theirs. Might not be the best way to word
  this, but I don't want to leech off their project.
- That two separate English translation projects exist for the game, I chalk up
  to unfortunate timing. Interestingly, this is not the first Chunsoft game for
  which this has happened, with two projects for Dragon Quest V on SFC.

--------------------------------------------------------------------------------
How to patch

The most recent patch version is available to download here:
https://github.com/ButThouMust/otogirisou-english/releases

You will need a *legally obtained*, unheadered 1 MB ROM image of the game, which
has this specification in the No-Intro database:
https://datomatic.no-intro.org/index.php?page=show_record&s=49&n=1880
CRC32:   8e4befd0
MD5:     ae1e9c92d0b7e6dba6c6007d99c9c3f4
SHA-1:   2c27b89a244abe941b6a9fceb1a674dbefd1f734
SHA-256: d85b6764a35f4dcee3ab5843df1c467ebdfe5f02236043a4e466e6975a3f70ca

Two patches are included: one for honorifics on, and one for honorifics off
(more details about this below). Use whichever patch you prefer, with any
patching utility that supports the BPS format. It should produce a 1.5 MB file.

I personally used the utility Floating IPS to generate the patch, and it can
apply the patch, as well. https://www.romhacking.net/utilities/1040/

--------------------------------------------------------------------------------
How to play the game

Otogirisou is a sound novel game from Chunsoft (now Spike Chunsoft). It was both
their debut title as a game publisher, in 1992, and the first entry in their
sound novel series (Kamaitachi no Yoru, Machi, Imabikisou, and 428 Shibuya
Scramble).

The controls are fairly simple:
- A/L: Confirm menu selection, advance text
- B: Cancel menu selection, advance text
- X: Scroll a page of text back, if available
- Y: Scroll a page of text forward, if you have already scrolled back at least
     one page
- R: Unused
- Start: Only used on the title screen and name entry screen.
- Select: Only used in the name entry menu. See what happens when you use it.

You must first name the protagonist (up to 6 characters). His default name is
Kouhei (公平) in the PlayStation remake, but he has no default name in the Super
Famicom version. The basic plot is that Kouhei and his girlfriend Nami (奈美)
are driving home from a date, when circumstances force them to take shelter from
a rainstorm in a creepy mansion. It soon becomes apparent that some kind of
presence inside clearly doesn't want them there.

The gameplay, so to speak, consists of reading text and picking a choice from a
list when the game presents you with a branching path. This continues until you
reach one of several available endings. The game will automatically save your
progress whenever you finish a screen of text or reach the credits.

Otogirisou's replayability comes from the different paths you can take, and the
different endings you can view. Depending on which and how many unique endings
you have seen, the game may present you with new options to pick for choices.
For example, a choice you first found with two options may later give you three
or even four options. Try to find as many endings as you can, and the game may
reward you!

--------------------------------------------------------------------------------
Features added for patch

- A more aesthetically pleasing English font than what was originally in the game.
  - Bypassing of the original game's font compression, to more easily add/edit
    characters if needed.
  - Linebreaking logic that, while imperfect, is better suited for English text
    and cuts out lots of manual formatting.
  - [Text kerning](https://en.wikipedia.org/wiki/Kerning), both horizontally and
    vertically.
  - Up to 10 lines of text can be on screen at once, instead of 9 like in the
    original Japanese game.

- Translation of all important graphics that contain Japanese text.
  - Title screen, credits, menu text, and one certain graphic in the story.
  - There are a few graphics where their Japanese text was left alone because
    the novel text explains them fine.

- Restoration of some unused content in the game.
  - Translated and restored two screens of text, plus another line, that were
    unused/inaccessible in the original Japanese script.
  - Made an unused graphic in the game viewable, after I discovered it in the
    game's data.

- Option to let the player enable or disable honorifics.
  - Normally, I would have left them out altogether, but there is an interesting
    argument for keeping them in. 
  - The original Japanese game has what you can technically consider a "game
    mechanic," where Nami uses a different honorific for Kouhei on each
    playthrough. For example, she may start with san but can switch to kun,
    chan, etc.
  - In the spirit of the sound novel, I leave this decision up to you, the
    player! :)

--------------------------------------------------------------------------------
Submitting issues

For general suggestions or any issues like bad formatting of game text, please
contact me *with a screenshot* of where you found the issue. You can contact me
through the GitHub repo, the Romhacking.net forum, the Romhack.ing forum, and/or
the Romhack.ing Discord server.

Issues in order from most severe to least concern:
- Game crash or softlock
- Save file deleted
- Irregularities in game behavior (please specify)
- Translation errors and/or poor wording
- Too many lines of text that overflow past the bottom of the screen
- Text doesn't auto line break early enough, with a word overflowing past the
  right edge of the screen
- Text auto line breaks too early, when a word can fit in space after break
- Control code mnemonics that slip through as visible text in the script
  - Similar, script comments that begin with "//" that sneak into the game script
- Automatic "wait for player input" triggers too often on punctuation
- Text kerning pairs that should have kerning but don't, or vice versa

--------------------------------------------------------------------------------
Known issues

- Due to how kerning is currently implemented, the one place it does *not* occur
  is the protagonist's name.

- I have not thoroughly tested the automatic line breaking while accounting for
  how you can name the protagonist `I`, `WWWWWW`, or something in between.

--------------------------------------------------------------------------------
Potential improvements

- Make a more user-friendly option to enable or disable honorifics.
  - Currently, this works by having two different patches. So if you want to
    switch, you would have to keep two copies of the game (one with honorifics
    on, another with honorifics off), and rename your save data accordingly.
  - One solution I had brainstormed was implementing the option through the
    otherwise unused R button.

- Change the kerning implementation to allow for kerning in the player's name.

- Make the automatic linebreaking logic more robust.

--------------------------------------------------------------------------------
Project credits

Alphabetical list of people who have contributed to this project, directly or indirectly, at some point:

- "Guest" (https://www.romhacking.net/community/695/)
  - Creator of original script/font dumpers and notes in the abandoned project
    "starter pack", which used to be available to download on RHDN:
    https://web.archive.org/web/20220115061924/https://www.romhacking.net/abandoned/

- Karu
  - Translation assistance

- Koitsu (https://www.romhacking.net/community/394/)
  - Provided notes on the game's font compression format and VWF implementation
    https://drive.google.com/drive/folders/1PGe1NSHxB6LXuLZH3t8acn7CnwjRYQYr

- Lazermutt4 (https://www.romhacking.net/community/7126/)
  - Translated the title logo and a certain graphic in the game
  - Pointed me to the font that I would use for the end credits

- MLagaffe
  - Provided font for main text
  - Suggested ideas for assembly hacks related to in-game text formatting

- Squeaky (https://www.romhacking.net/community/8301/)
  - Translation assistance

I would also like to mention the Open Source Cartridge Reader project. Building
one allowed me to test the translation patch on a real Super Nintendo with an SF
Memory cartridge. https://github.com/sanni/cartreader
